home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Lib / parse / rfc822_x400.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.3 KB  |  62 lines

  1. /* rfc822_x400.c: address conversion from 822 to x400 */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Lib/parse/RCS/rfc822_x400.c,v 6.0 1991/12/18 20:23:41 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Lib/parse/RCS/rfc822_x400.c,v 6.0 1991/12/18 20:23:41 jpo Rel $
  9.  *
  10.  * $Log: rfc822_x400.c,v $
  11.  * Revision 6.0  1991/12/18  20:23:41  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16. #include "head.h"
  17. #include "adr.h"
  18.  
  19. extern char or_error[];
  20.  
  21. int rfc822_x400(ad)
  22. register ADDR    *ad;
  23. {
  24.     OR_ptr or;
  25.     char    *p = ad->aparse->r822_str ? 
  26.         ad->aparse->r822_str : ad->ad_value;
  27.     PP_DBG(("rfc822_x400('%s')", p));
  28.  
  29.     aparse_rewindx400(ad->aparse);
  30.  
  31.     if (or_rfc2or_aux (p, &(ad->aparse->orname->on_or), ad->ad_no) == NOTOK) {
  32.         or_free (ad->aparse->orname->on_or);
  33.         ad->aparse->orname->on_or = NULLOR;
  34.         PP_DBG(("rfc822_x400 conversion failed (%s)", or_error));
  35.         return RP_PARSE;
  36.     }
  37.  
  38.     if ((or = or_default (ad->aparse->orname->on_or)) == NULLOR) {
  39.         PP_LOG (LLOG_EXCEPTIONS, ("or_default failed"));
  40.         return RP_PARSE;
  41.     }
  42.     ad -> aparse -> orname -> on_or = or;
  43.  
  44.     fillin_400_str(ad);
  45.  
  46.     return RP_AOK;
  47. }
  48.  
  49. void x400_add(ad)
  50. register ADDR    *ad;
  51. {
  52.     (void) rfc822_x400(ad);
  53.     
  54.     if (ad->aparse->x400_str) {
  55.         if (ad->ad_r400adr)
  56.             free (ad->ad_r400adr);
  57.  
  58.         ad->ad_r400adr = strdup (ad->aparse->x400_str);
  59.     }
  60.     PP_DBG (("x400_add returns (x400_str=%s)", ad->aparse->x400_str));
  61. }    
  62.